Vlakna - jak na promenne, ktere potrebuji pouzivat ve vice valknech?

Otázka od: Ing. Jiri Sokol

25. 10. 2004 11:19

Ahoj.
Myslim, ze muj dotaz je vice nez jasny. V soucasne dobe (na zaklade Vasich rad
a pripominek) jsem predelal aplikaci na obsluhu VCL a jedno separatni vlakno.
Jak muze hlavni vlakno (aplikace) a separatni vlakno pouzivat jenu tridu (jsou
v ni 3 stringlisty)
Jde to nejak? Jak?
Diky
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol@seznam.cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater



Odpovedá: Milan Tomes

25. 10. 2004 11:24

         valknech?
Rozhodne to jde... Musis pouzit nektery ze synchronizacnich objektu tj.
takovy objekt, ktery zaruci pristup k promenne pouze jednomu vlaknu v dany
casovy okamzik. Podivej se napr. na InitializeCriticalSection,
EnterCriticalSection, LeaveCriticalSection a DeleteCriticalSection.

S pozdravem

Milan Tomes

> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Ing. Jiri Sokol
> Sent: Monday, October 25, 2004 12:02 PM
>
> Jak muze hlavni vlakno (aplikace) a separatni vlakno pouzivat
> jenu tridu (jsou v ni 3 stringlisty)


Odpovedá: delphin@post.cz

25. 10. 2004 13:23

         valknech?
> Rozhodne to jde... Musis pouzit nektery ze synchronizacnich objektu tj.
> takovy objekt, ktery zaruci pristup k promenne pouze jednomu vlaknu v dany
> casovy okamzik. Podivej se napr. na InitializeCriticalSection,
> EnterCriticalSection, LeaveCriticalSection a DeleteCriticalSection.

Je mozno take pouzit tridu TCriticalSection, kde jsou tyhle funkce zabaleny
do tridy.


Odpovedá: tondrej@t-online.de

9. 11. 2004 17:45

         valknech?
> Myslim, ze muj dotaz je vice nez jasny. V soucasne dobe (na zaklade Vasich
rad a pripominek) jsem predelal aplikaci na obsluhu VCL a jedno separatni
vlakno.
> Jak muze hlavni vlakno (aplikace) a separatni vlakno pouzivat jenu tridu
(jsou v ni 3 stringlisty)
> Jde to nejak? Jak?

Pristup k zdielanym premennym je potrebne synchronizovat, napriklad
pomocou critical section (TCriticalSection).

HTH
TOndrej